package com.suzhiliang.springbootlesson.CORS;

import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * Copyright (C), 2015-2019, XXX有限公司
 *
 * @ClassName: CORSConfiguration
 * @Author: xmm
 * @Date: 2019/8/22 15:21
 * @Description: CORS（Cross-Origin Resource Sharing）
 *                  "跨域资源共享"，是一个W3C标准，它允许浏览器向跨域服务器发送Ajax请求，
 *                   打破了Ajax只能访问本站内的资源限制，CORS在很多地方都有被使用，
 *                   微信支付的JS支付就是通过JS向微信服务器发送跨域请求。
 *                   开放Ajax访问可被跨域访问的服务器大大减少了后台开发的工作，
 *                   前后台工作也可以得到很好的明确以及分工。
 *  CORSConfiguration配置类
 * @Version 1.0
 */
public class CORSConfiguration implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") //配置可以被跨域的路径，可以任意配置，可以具体到直接请求路径。
                .allowedMethods("*")//允许所有的请求方法访问该跨域资源服务器，如：POST、GET、PUT、DELETE等
                .allowedOrigins("*")//允许所有的请求域名访问我们的跨域资源，可以固定单条或者多条内容，
                                    // 如："http://www.baidu.com"，只有百度可以访问我们的跨域资源
                .allowedHeaders("*");//允许所有的请求header访问，可以自定义设置任意请求头信息，如："X-YAUTH-TOKEN"
    }
}
